package com.ruoyi.employee.mapper;

import java.util.List;

import com.ruoyi.employee.domain.Employee;
import com.ruoyi.employee.domain.Dto.EmployeeDto;
import com.ruoyi.employee.domain.vo.EmployeeStatus;
import com.ruoyi.employee.domain.vo.EmployeeVo;
import org.springframework.stereotype.Component;

/**
 * 员工花名册Mapper接口
 * 
 * @author ruoyi
 * @date 2025-05-29
 */
@Component("VueEmployeeMapper")
public interface EmployeeMapper 
{
    /**
     * 查询员工花名册
     * 
     * @param id 员工花名册主键
     * @return 员工花名册
     */
    public Employee selectEmployeeById(Long id);

    /**
     * 查询员工花名册列表
     * 
     * @param employeeVo 员工花名册
     * @return 员工花名册集合
     */
    public List<EmployeeVo> selectEmployeeList(EmployeeVo employeeVo);

    /**
     * 新增员工花名册
     * 
     * @param employee 员工花名册
     * @return 结果
     */
    public int insertEmployee(Employee employee);

    /**
     * 修改员工花名册
     * 
     * @param employee 员工花名册
     * @return 结果
     */
    public int updateEmployee(Employee employee);

    /**
     * 删除员工花名册
     * 
     * @param id 员工花名册主键
     * @return 结果
     */
    public int deleteEmployeeById(Long id);

    /**
     * 批量删除员工花名册
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmployeeByIds(Long[] ids);

    /**
     * 获取员工情况，在职，离职，退休，其他
     *
     * @return 员工花名册集合
     */
    EmployeeStatus getEmployeeList();

    /**
     * 获取员工年龄分布
     *
     * @return 员工花名册集合
     */
    EmployeeStatus getEmployeeAgeDivisionList();

    /**
     * 员工花名册
     * 查看员工详情
     */
    EmployeeDto selectEmployeeDetailsById(Long id);
}
